/**
  ******************************************************************************
  * @file    bsp_debug_usart.c
  * @brief   使用串口2，重定向c库printf函数到usart端口，中断接收模式
  ******************************************************************************
***/ 


#include "System.h"
/*****************  发送字符 **********************/
void Usart_SendByte(uint8_t str)
{
  HAL_UART_Transmit(&huart2, &str, 1, 1000);
}

/*****************  发送字符串 **********************/
void Usart_SendString(uint8_t *str)
{
	unsigned int k=0;
  do 
  {
      HAL_UART_Transmit(&huart2,(uint8_t *)(str + k) ,1,1000);
      k++;
  } while(*(str + k)!='\0');
  
}
//重定向c库函数printf到串口DEBUG_USART，重定向后可使用printf函数
	
#if 1
#pragma import(__use_no_semihosting)             
                 
struct __FILE 
{ 
    int handle; 
}; 

FILE __stdout;         
void _sys_exit(int x) 
{ 
    x = x; 
} 

int fputc(int ch, FILE *f)
{     
    while((USART2->SR&0X40)==0); //这里的usart1应该要匹配自己使用的串口  
    USART2->DR = (uint8_t) ch;      
    return ch;
}
#endif

//重定向c库函数scanf到串口DEBUG_USART，重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{		
	int ch;
	HAL_UART_Receive(&huart2, (uint8_t *)&ch, 1, 1000);	
	return (ch);
}



/*********************************************END OF FILE**********************/
